package org.swidgets.base.sbutton;


import org.swidgets.base.BorderStyleRepository;
import org.swidgets.base.spanels.SlimPanel;

import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusListener;
import com.google.gwt.user.client.ui.KeyboardListener;
import com.google.gwt.user.client.ui.Widget;


 class SButton extends Composite{
	private SlimPanel cornice=new SlimPanel(BorderStyleRepository.button,"ButtonContentOver", "ButtonContentClicked");
	private Button button;

	public SButton(){
		super();
		this.initWidget(cornice);

		button = new Button();		
		setWidth("80px");
		setHeight("20px");
		button.setStyleName("ButtonTrasparente");		
		button.addStyleName("defaultLabel");
		cornice.add(button);
	}

	public SButton(String caption){
		this();
		button.setText(caption);
	}

	public SButton(String caption, ClickListener listener){
		this();
		button.setText(caption);
		button.addClickListener(listener);
	}

	public void add(Widget w){
		this.cornice.add(w);
	}

	public void addClickListener(ClickListener listener){
		button.addClickListener(listener);
	}
	public void addFocusListener(FocusListener listener) {
		button.addFocusListener(listener);
	}
	public void addKeyboardListener(KeyboardListener listener) {
		button.addKeyboardListener(listener);
	}
	public void addStyleName(String style) {
		button.addStyleName(style);
	}	
	public void click() {
		button.click();
	}
	public String getText() {
		return button.getText();
	}
	public String getTitle() {
		return button.getTitle();
	}	
	public void onBrowserEvent(Event event) {
		button.onBrowserEvent(event);
	}
	public void removeClickListener(ClickListener listener) {
		button.removeClickListener(listener);
	}
	public void removeFocusListener(FocusListener listener) {
		button.removeFocusListener(listener);
	}
	public void removeKeyboardListener(KeyboardListener listener) {
		button.removeKeyboardListener(listener);
	}
	public void setText(String text) {
		button.setText(text);
	}
	public void setTitle(String title) {
		button.setTitle(title);
	}
	public void setEnabled(boolean enabled) {
		button.setEnabled(enabled);
	}

	public void setTabIndex(int index) {
		button.setTabIndex(index);
	}

	public String getHTML() {
		return button.getHTML();
	}

	public void setHTML(String html) {
		button.setHTML(html);
	}

	
//
//	
//	
//	
//	
//	
//	
//	private SSimpleFrame cornice=new SSimpleFrame();
//	private ButtonMouseEvent button;
//	private CellFormatter cf = cornice.getCellFormatter();
//	
//	private static final boolean isDesignTime() {
//		return false;
//	}
//	
//	public SButton(){
//		super();
//		this.initWidget(cornice);
//		if (isDesignTime()) {
//			button=new ButtonMouseEvent(this,"Button");
//		}
//		else{
//			button=new ButtonMouseEvent(this);			
//		}
//		cornice.setBodyWidget(button);
//		button.setWidth("80px");
//		button.setStyleName("ButtonTrasparente");
//		button.addMouseListener(this);
//		setNormalDecoration();
//		
//	}
//	
//	public SButton(String caption){
//		super();
//	
//		this.initWidget(cornice);
//		button=new ButtonMouseEvent(this,caption);
//		cornice.setBodyWidget(button);
//		button.setWidth("80px");
//		button.setStyleName("ButtonTrasparente");
//		button.addMouseListener(this);
//		setNormalDecoration();
//		
//	}
//	
//	public SButton(String caption,ClickListener listener){
//		super();
//		this.initWidget(cornice);
//		button=new ButtonMouseEvent(this,caption);
//		button.setWidth("80px");
//		button.setStyleName("ButtonTrasparente");
//		button.addMouseListener(this);
//		setNormalDecoration();
//		cornice.setBodyWidget(button);
//		button.addClickListener(listener);
//	}
//	
//	
//private void setNormalDecoration(){
//		
//		cf.setStyleName(0, 1, "ButtonTopBorder");
//		cf.setStyleName(2, 1, "ButtonBottomBorder");
//		cf.setStyleName(1, 0, "ButtonLeftBorder");
//		cf.setStyleName(1, 2, "ButtonRightBorder");
//		cf.setStyleName(1, 1, "ButtonContent");
//		
//		HTMLInjector.imgInject(cf.getElement(0, 0), "style/img/button/topLeftBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(0, 2), "style/img/button/topRightBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(2, 0), "style/img/button/bottomLeftBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(2, 2), "style/img/button/bottomRightBorder.gif");
//	} 
//	
//	public void setClickedDecoration(){
//		
//		 
//		cf.setStyleName(0, 1, "ButtonTopBorderClicked");
//		cf.setStyleName(2, 1, "ButtonBottomBorderClicked");
//		cf.setStyleName(1, 0, "ButtonLeftBorderClicked");
//		cf.setStyleName(1, 2, "ButtonRightBorderClicked");
//		cf.setStyleName(1, 1, "ButtonContentClicked");
//		
//		HTMLInjector.imgInject(cf.getElement(0, 0), "style/img/buttonClicked/topLeftBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(0, 2), "style/img/buttonClicked/topRightBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(2, 0), "style/img/buttonClicked/bottomLeftBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(2, 2), "style/img/buttonClicked/bottomRightBorder.gif");
//		
//		
//	}
//	
//	
//	public void setOverDecoration(){
//		
//		cf.setStyleName(0, 1, "ButtonTopBorderClicked");
//		cf.setStyleName(2, 1, "ButtonBottomBorderClicked");
//		cf.setStyleName(1, 0, "ButtonLeftBorderClicked");
//		cf.setStyleName(1, 2, "ButtonRightBorderClicked");
//		cf.setStyleName(1, 1, "ButtonContent");
//		
//		HTMLInjector.imgInject(cf.getElement(0, 0), "style/img/buttonClicked/topLeftBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(0, 2), "style/img/buttonClicked/topRightBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(2, 0), "style/img/buttonClicked/bottomLeftBorder.gif");
//		HTMLInjector.imgInject(cf.getElement(2, 2), "style/img/buttonClicked/bottomRightBorder.gif");
//		
//	}
//	public void add(Widget w){
//		this.cornice.setBodyWidget(w);
//	}
//	
//	public void onMouseDown(Widget sender, int x, int y) {
//		setClickedDecoration();
//	}
//	public void onMouseUp(Widget sender, int x, int y) {
//		setNormalDecoration();
//	}
//	
//	
//	public void onMouseEnter(Widget sender) {
//		setOverDecoration();
//		
//	}
//	public void onMouseLeave(Widget sender) {
//		setNormalDecoration();
//	}
//	public void onMouseMove(Widget sender, int x, int y) {
//	}
//	
//	public void addClickListener(ClickListener listener){
//		button.addClickListener(listener);
//	}
//	public void addFocusListener(FocusListener listener) {
//		button.addFocusListener(listener);
//	}
//	public void addKeyboardListener(KeyboardListener listener) {
//		button.addKeyboardListener(listener);
//	}
//	public void addMouseListener(MouseListener listener) {
//		button.addMouseListener(listener);
//	}
//	public void addStyleName(String style) {
//		button.addStyleName(style);
//	}
//	public void click() {
//		button.click();
//	}
//	public String getText() {
//		return button.getText();
//	}
//	public String getTitle() {
//		return button.getTitle();
//	}
//	public void initMouseEvent() {
//		button.initMouseEvent();
//	}
//	public void onBrowserEvent(Event event) {
//		button.onBrowserEvent(event);
//	}
//	public void removeClickListener(ClickListener listener) {
//		button.removeClickListener(listener);
//	}
//	public void removeFocusListener(FocusListener listener) {
//		button.removeFocusListener(listener);
//	}
//	public void removeKeyboardListener(KeyboardListener listener) {
//		button.removeKeyboardListener(listener);
//	}
//	public void removeMouseListener(MouseListener listener) {
//		button.removeMouseListener(listener);
//	}
//	public void setText(String text) {
//		button.setText(text);
//	}
//	public void setTitle(String title) {
//		button.setTitle(title);
//	}
//	public void setEnabled(boolean enabled) {
//		button.setEnabled(enabled);
//	}
//	public void setWidth(String width) {
//		button.setWidth(width);
//	}
	
}
